package main

import (
	"fmt"
)

func main() {
	//Map 是一种无序的键值对的集合。Map 最重要的一点是通过 key 来快速检索数据，key 类似于索引，指向数据的值。
	//Map 是一种集合，所以我们可以像迭代数组和切片那样迭代它。不过，Map 是无序的，我们无法决定它的返回顺序，
	//这是因为 Map 是使用 hash 表来实现的。

	countryCapitalMap := map[string]string{
		"France": "Paris",
		"Italy":  "Rome",
		"Japan":  "Tokyo",
		"India":  "New delhi"}

	/* 添加元素 */
	countryCapitalMap["China"] = "Beijing"
	countryCapitalMap["America"] = "New York"

	/* 遍历map集合 */
	for country := range countryCapitalMap {
		fmt.Printf("%s -> %s \n", country, countryCapitalMap[country])
	}

	/* 删除元素 */
	delete(countryCapitalMap, "America")

	/* 判断键是否存在 */
	capital, ok := countryCapitalMap["America"]
	if ok {
		fmt.Println("America 首都是：", capital)
	} else {
		fmt.Println("America 已经不存在了：", capital)
	}

}
